#pragma once
#include "occobjectbase.h"
class CreateOccObject : public OccObjectBase
{
	Q_OBJECT
public slots:
	QVariant CreateSphere(ZMReal r);

	QVariant CreateBox(ZMReal dx, ZMReal dy, ZMReal dz);

	QVariant CreateTransForm_Tranlate(ZMReal x, ZMReal y, ZMReal z);

	QVariant CreateTransForm_Rotate(const gp_Pnt& axisFrom, const gp_Vec& axis, ZMReal angle);

	QVariant CreateTransForm_Scale(ZMReal s);

	QVariant CreateTransForm_Mirror(const gp_Pnt& axisFrom, const gp_Vec& vec);
	
	QVariant CreateTransForm_Mirror(const gp_Pnt& pnt);

	QVariant CreatePoint(ZMReal x, ZMReal y, ZMReal z);
	
	QVariant CreateVector(ZMReal x, ZMReal y, ZMReal z);

	QVariant CreateArcOfCircle(const gp_Pnt& pnt0, const gp_Pnt& pnt1, const gp_Pnt& pnt2, const ZMReal& fPercentBegin = 0, const ZMReal& fPercentEnd =1);

	QVariant CreateSegment(const gp_Pnt& pntFrom, const gp_Pnt& pntTo);
	

	QVariant CreateFaceFromEdge(const QVariant&  lsEdge);//param: QVector<TopoDS_Edge>

	QVariant CreateFaceFromWire(const QVariant&  varWire);//param: QVector<TopoDS_Wire>

	QVariant CreateWireFromEdge(const QVariant& lsEdge);//param: QVector<TopoDS_Edge>

	QVariant CreateWireFromWire(const QVariant& varWire);//param: QVector<TopoDS_Wire>

	QVariant Test(const QVariant& data);

protected:
public:
	CreateOccObject(QObject *parent = NULL);
	~CreateOccObject();
	
};

